#ifndef _Microwave_H_
#define _Microwave_H_

#include "Magnetron.h"
#include "Door.h"
#include "Clock.h"
#include "Motor.h"
#include "Display.h"
#include "LightBulb.h"
#include "Keyboard.h"


namespace Green
{
	typedef enum{
			PIZZA = 1, 
			DEFROST = 2, 
			POPTART = 3, 
			POPCORN = 4,
			NOTHING
		}FoodType;
	
	enum Level{LOW, MEDIUM, HIGH};
	
	typedef struct 
	{
		Level l;
		unsigned d;
	}cookData;


class Microwave
{
	public:
		//Defualt Constructor and Destructor
		Microwave();
		virtual ~ Microwave();

		// Methods for how food will be cooked
		void run();
		void cookMyFood();
		void doneCooking();
		
		
		//Other classes
		Clock* ck;
		Magnetron* mag;
		Door* d;
		Motor* mt;
		Display* dis;
		LightBulb * light;
		Keyboard * key;

	private:
		map <FoodType, cookData> preset;
};
}
#endif //_Microwave_H_